{% extends "page.md.j2" %}

{% block metadata %}

| | |
|---|---|
| **名称** | {{metadata["name"]}} |
| **实例化能力** | {{metadata["Instantiability"]}} |
{% if "SubclassOf" in metadata %}
| **父类** | {{type_link(metadata["SubclassOf"])}} |
{% endif %}

## 超类

{% set full_inheritance_stack = [fqname] + inheritance_stack %}
{% for super in full_inheritance_stack | reverse %}
{{ '&nbsp;' * ((loop.index-1) * 6) }}
  {% if loop.last %}
{{type_link(super)}}
  {% else %}
{{type_link(super)}}<br />
  {% endif %}
{% endfor %}

{% endblock %}

{% block extra %}

{% if properties %}
## 属性

| 属性 | 类型 | 最小数量 | 最大数量 |
|---|---|:---:|:---:|
    {% for name, kv in properties | dictsort %}
| {{property_link(name)}} | {{type_link(kv["type"])}} | {{kv["minCount"]}} | {{kv["maxCount"]}} |
    {% endfor %}

{% endif %}

{% if ext_prop_restrs %}
## 外部属性基数更新

| 属性 | 最小数量 | 最大数量 |
|---|:---:|:---:|
    {% for name, kv in ext_prop_restrs | dictsort %}
| {{ext_property_link(name)}} | {{not_none(kv.get("minCount"))}} | {{not_none(kv.get("maxCount"))}} |
    {% endfor %}

{% endif %}

{% if all_properties %}
## 全部属性

| 属性 | 类型 | 最小数量 | 最大数量 |
|---|---|:---:|:---:|
    {% for name, kv in all_properties | dictsort %}
| {{property_link(kv["fullname"], showshort=True)}} | {{type_link(kv["fulltype"], showshort=True)}} | {{kv["minCount"]}} | {{kv["maxCount"]}} |
    {% endfor %}

{% endif %}


{% endblock %}
